package py.com.erpone.entity.dm;

import java.util.Date;

public class OrdenPago {
	public static final String TIPO_PAGO_EFECTIVO = "E"; 
	public static final String TIPO_PAGO_CHEQUE = "C";

	public static final String SITUACION_ABIERTO = "O";
	public static final String SITUACION_CANCELADO = "C";
	
	
	
	
	private Long id;
	private Double total;
	private Date fecha;
	private String tipoPago;
	private Cheque cheque;
	private String situacion;
	private String concepto;
	private OrdenCompra ordenCompra;
	
	
	public OrdenPago() {
		super();
		
	}



	public OrdenPago(Long id, Double total, Date fecha, String tipoPago,
			Cheque cheque, String situacion, String concepto,
			OrdenCompra ordenCompra) {
		super();
		this.id = id;
		this.total = total;
		this.fecha = fecha;
		this.tipoPago = tipoPago;
		this.cheque = cheque;
		this.situacion = situacion;
		this.concepto = concepto;
		this.ordenCompra = ordenCompra;
	}

	

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Double getTotal() {
		return total;
	}

	public void setTotal(Double total) {
		this.total = total;
	}

	public Date getFecha() {
		return fecha;
	}


	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	public String getTipoPago() {
		return tipoPago;
	}

	public void setTipoPago(String tipoPago) {
		this.tipoPago = tipoPago;
	}

	public Cheque getCheque() {
		return cheque;
	}

	public void setCheque(Cheque cheque) {
		this.cheque = cheque;
	}

	public String getSituacion() {
		return situacion;
	}

	public void setSituacion(String situacion) {
		this.situacion = situacion;
	}

	public String getConcepto() {
		return concepto;
	}

	public void setConcepto(String concepto) {
		this.concepto = concepto;
	}

	public OrdenCompra getOrdenCompra() {
		return ordenCompra;
	}

	public void setOrdenCompra(OrdenCompra ordenCompra) {
		this.ordenCompra = ordenCompra;
	}

	public static String getTipoPagoEfectivo() {
		return TIPO_PAGO_EFECTIVO;
	}

	public static String getTipoPagoCheque() {
		return TIPO_PAGO_CHEQUE;
	}

	public static String getSituacionAbierto() {
		return SITUACION_ABIERTO;
	}

	public static String getSituacionCancelado() {
		return SITUACION_CANCELADO;
	}



	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((cheque == null) ? 0 : cheque.hashCode());
		result = prime * result
				+ ((concepto == null) ? 0 : concepto.hashCode());
		result = prime * result + ((fecha == null) ? 0 : fecha.hashCode());
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		result = prime * result
				+ ((ordenCompra == null) ? 0 : ordenCompra.hashCode());
		result = prime * result
				+ ((situacion == null) ? 0 : situacion.hashCode());
		result = prime * result
				+ ((tipoPago == null) ? 0 : tipoPago.hashCode());
		result = prime * result + ((total == null) ? 0 : total.hashCode());
		return result;
	}


	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		OrdenPago other = (OrdenPago) obj;
		if (cheque == null) {
			if (other.cheque != null)
				return false;
		} else if (!cheque.equals(other.cheque))
			return false;
		if (concepto == null) {
			if (other.concepto != null)
				return false;
		} else if (!concepto.equals(other.concepto))
			return false;
		if (fecha == null) {
			if (other.fecha != null)
				return false;
		} else if (!fecha.equals(other.fecha))
			return false;
		if (id == null) {
			if (other.id != null)
				return false;
		} else if (!id.equals(other.id))
			return false;
		if (ordenCompra == null) {
			if (other.ordenCompra != null)
				return false;
		} else if (!ordenCompra.equals(other.ordenCompra))
			return false;
		if (situacion == null) {
			if (other.situacion != null)
				return false;
		} else if (!situacion.equals(other.situacion))
			return false;
		if (tipoPago == null) {
			if (other.tipoPago != null)
				return false;
		} else if (!tipoPago.equals(other.tipoPago))
			return false;
		if (total == null) {
			if (other.total != null)
				return false;
		} else if (!total.equals(other.total))
			return false;
		return true;
	}



	@Override
	public String toString() {
		return "OrdenPago [id=" + id + ", total=" + total + ", fecha=" + fecha
				+ ", tipoPago=" + tipoPago + ", cheque=" + cheque
				+ ", situacion=" + situacion + ", concepto=" + concepto
				+ ", ordenCompra=" + ordenCompra + "]";
	}
	
	
	
	

}
